home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / system-config-printer / debug.py < prev    next >
Text File  |  2009-10-19  |  2KB  |  56 lines

  1. #!/usr/bin/env python
  2.  
  3. ## Copyright (C) 2008 Red Hat, Inc.
  4. ## Copyright (C) 2008 Tim Waugh <twaugh@redhat.com>
  5.  
  6. ## This program is free software; you can redistribute it and/or modify
  7. ## it under the terms of the GNU General Public License as published by
  8. ## the Free Software Foundation; either version 2 of the License, or
  9. ## (at your option) any later version.
  10.  
  11. ## This program is distributed in the hope that it will be useful,
  12. ## but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. ## GNU General Public License for more details.
  15.  
  16. ## You should have received a copy of the GNU General Public License
  17. ## along with this program; if not, write to the Free Software
  18. ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  
  20. import sys
  21. import traceback
  22.  
  23. _debug=False
  24. def debugprint (x):
  25.     if _debug:
  26.         try:
  27.             print >>sys.stderr, x
  28.         except:
  29.             pass
  30.  
  31. def get_debugging ():
  32.     return _debug
  33.  
  34. def set_debugging (d):
  35.     global _debug
  36.     _debug = d
  37.  
  38. def fatalException (exitcode=1):
  39.     nonfatalException (type="fatal", end="Exiting")
  40.     sys.exit (exitcode)
  41.  
  42. def nonfatalException (type="non-fatal", end="Continuing anyway.."):
  43.     d = get_debugging ()
  44.     set_debugging (True)
  45.     debugprint ("Caught %s exception.  Traceback:" % type)
  46.     (type, value, tb) = sys.exc_info ()
  47.     tblast = traceback.extract_tb (tb, limit=None)
  48.     if len (tblast):
  49.         tblast = tblast[:len (tblast) - 1]
  50.     extxt = traceback.format_exception_only (type, value)
  51.     for line in traceback.format_tb(tb):
  52.         debugprint (line.strip ())
  53.     debugprint (extxt[0].strip ())
  54.     debugprint (end)
  55.     set_debugging (d)
  56.